home *** CD-ROM | disk | FTP | other *** search
/ Game Cracker (Expanded Edition) / Game Cracker (Expanded Edition).iso / cracks / SV_SBA.ZIP / Speedboat Attack.txt < prev   
Text File  |  1999-01-29  |  9KB  |  190 lines

  1.  
  2. Free Information Xchange presents:
  3.  
  4. Speedboat Attack - CD crack by Static Vengeance - Nov 4th, 1998
  5.  
  6. Requirements:
  7. hex editor and full install
  8. W32Dasm if you want to follow along
  9.  
  10.     Speedboat Attack (SBA) sounds like it would be a great game.  You race around courses and pick up
  11. powerups and weapons, waste other players.  Sounds like a great idea and with 3Dfx graphics you have the
  12. makings for an awesome game.  A couple of things come up that needs to be FiX'ed.  One I can help you with,
  13. while the others will need to fixed by programers.  The first bug I'm talking about is the need for the CD
  14. to in your CD Rom drive when you go to play the game, that we can fix!  The other problems are no support
  15. for Win98 or for non Voodoo1 3Dfx chipsets.  Also there are K6-2 3DNow! optimized versions for the DirectDraw
  16. and 3Dfx versions.  However you cannot get the patch to run under Win95 OSR2 or later including Win98.  Again
  17. these problems needs to be addressed by the publisher/programmer.
  18.     Anyways, let's get down to business and crack this game.  First thing you'll need to do is to dis-
  19. assemble the game with W32Dasm.  Then do the usual trick, go up to the menu bar and select Refs and then
  20. String Data Refs from the drop down menu.  When pop-up box comes up, grab the slider bar and scroll down to
  21. "Please, insert Speedboat Attack " and double click it to put you in the middle of the CD check:
  22.  
  23. * Referenced by a CALL at Addresses:
  24. |:00426680   , :0046D82E                               <-- Called twice
  25. |
  26. :0040D740 56                      push esi
  27.  
  28. * Reference To: USER32.MessageBoxA, Ord:0195h          <-- Do a normal pop-up dialog box
  29.                                   |
  30. :0040D741 8B35A0BC7000            mov esi, dword ptr [0070BCA0]
  31.  
  32. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  33. |:0040D774(C)
  34. |
  35. :0040D747 E8F4FDFFFF              call 0040D540     <-- Eventually ends up going thru a routine @ 40D650
  36.                                                     <--  and makes a KERNEL32.GetDiskFreeSpaceA call to
  37.                                                     <--  to check for the game CD
  38. :0040D74C 8B0D20996F00            mov ecx, dword ptr [006F9920]
  39.  
  40. * Possible StringData Ref from Data Obj ->"Speedboat Attack"
  41.                                   |
  42. :0040D752 8B15F4EB4900            mov edx, dword ptr [0049EBF4]
  43. :0040D758 A318B54900              mov dword ptr [0049B518], eax
  44. :0040D75D 85C0                    test eax, eax
  45. :0040D75F 7515                    jne 0040D776
  46. :0040D761 6A15                    push 00000015
  47. :0040D763 52                      push edx
  48.  
  49. * Possible StringData Ref from Data Obj ->"Please, insert Speedboat Attack "  <-- What lead us here
  50.                                         ->"CD into CD drive."
  51.                                   |
  52. :0040D764 6850B54900              push 0049B550
  53. :0040D769 51                      push ecx
  54. :0040D76A FFD6                    call esi
  55. :0040D76C 83F804                  cmp eax, 00000004
  56. :0040D76F A118B54900              mov eax, dword ptr [0049B518]
  57. :0040D774 74D1                    je 0040D747
  58.  
  59. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  60. |:0040D75F(C)
  61. |
  62. :0040D776 5E                      pop esi
  63. :0040D777 A318B54900              mov dword ptr [0049B518], eax
  64. :0040D77C C3                      ret
  65.  
  66.     That's the routine that tells the user to put in the CD if it's not already online.  The call
  67. to 40D540 will eventually go through a routine at 40D650 which will make a call through KERNEL32 and
  68. checks the free space (GetDiskFreeSpaceA).  On a CD there is NO free space so that's how the copy
  69. protection "figures" out if the disk drive is a CD or not.
  70.     Alright, now that you know the basics of the copy protection used, let's check out the two
  71. sections of SBA that calls the CD check.  The first one is at 426680 and the surounding code looks like
  72. this:
  73.  
  74.  -- Program code --
  75. :0042666C 6A01                    push 00000001
  76. :0042666E E8DDD3FFFF              call 00423A50
  77. :00426673 83C404                  add esp, 00000004
  78. :00426676 A17C996F00              mov eax, dword ptr [006F997C]
  79. :0042667B 83F803                  cmp eax, 00000003
  80. :0042667E 7D15                    jge 00426695
  81. :00426680 E8BB70FEFF              call 0040D740       <-- Check for the CD & ask user for CD if needed
  82. :00426685 85C0                    test eax, eax       <-- eax=00000001 for a good CD check
  83. :00426687 750C                    jne 00426695        <-- Need to take this jump
  84. :00426689 33C0                    xor eax, eax        <-- You hit cancel, so set up to quit to Win95
  85. :0042668B 5F                      pop edi
  86. :0042668C 5E                      pop esi
  87. :0042668D 5B                      pop ebx
  88. :0042668E 81C41C020000            add esp, 0000021C
  89. :00426694 C3                      ret
  90.  
  91. * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
  92. |:0042667E(C), :00426687(C)
  93. |
  94.  
  95. * Possible StringData Ref from Data Obj ->"explode.ini"
  96.                                   |
  97. :00426695 6830C14900              push 0049C130
  98. :0042669A 68D8944A00              push 004A94D8
  99. :0042669F FFD7                    call edi
  100. :004266A1 68D8944A00              push 004A94D8
  101. :004266A6 E8D5DAFFFF              call 00424180
  102. :004266AB 83C404                  add esp, 00000004
  103. :004266AE 85C0                    test eax, eax
  104.   -- Continuing program code --
  105.  
  106.     Just change the call 0040D740 to mov eax, 00000001 and you have killed the first call to the CD
  107. check.  That way no CD check is not ever made the returned value for a good CD check is inplanted "in line."
  108. Now let's look at the other call at 46D82E and the surounding code:
  109.  
  110.   -- Program code --
  111. :0046D81D E8FE0A0000              call 0046E320
  112. :0046D822 8B4510                  mov eax, dword ptr [ebp+10]
  113. :0046D825 50                      push eax
  114. :0046D826 E8C50A0000              call 0046E2F0
  115. :0046D82B 83C404                  add esp, 00000004
  116. :0046D82E E80DFFF9FF              call 0040D740         <-- Do the CD check and ask CD if needed
  117. :0046D833 85C0                    test eax, eax         <-- eax=00000001 for a good CD check
  118. :0046D835 0F8507000000            jne 0046D842          <-- Need to take this jump
  119. :0046D83B 33C0                    xor eax, eax
  120. :0046D83D E982020000              jmp 0046DAC4          <-- You hit cancel, so quit to Win95
  121.  
  122. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  123. |:0046D835(C)
  124. |
  125. :0046D842 E8790A0000              call 0046E2C0
  126. :0046D847 A358D04900              mov dword ptr [0049D058], eax
  127. :0046D84C 6A00                    push 00000000
  128.  
  129. * Reference To: ole32.CoInitialize, Ord:0025h
  130.                                   |
  131. :0046D84E FF1518BD7000            Call dword ptr [0070BD18]
  132. :0046D854 C705E4636C00D0EC4900    mov dword ptr [006C63E4], 0049ECD0
  133. :0046D85E 8B4514                  mov eax, dword ptr [ebp+14]
  134. :0046D861 50                      push eax
  135.   -- Continuing program code --
  136.  
  137.     Once again, changing the call to a mov eax, 00000001 kills the CD check and allows SBA to continue.
  138. Killing both calls allows you to play the game without having the Speedboat Attack CD online.  Make the
  139. edits you have cracked SBA, there is a normal DirectDraw version and a native 3Dfx version on the game CD.
  140. Included is the crack for either version.
  141.  
  142. 1.  Do a full install of the game
  143. 2.  Make the following edit by version:
  144.  
  145. Edit sboat.exe (725k D3D version off the CD)
  146. =============================================
  147. Search for: E8 BB 70 FE FF  at offset 154,240
  148. Change to : B8 01 00 00 00
  149.  
  150. Search for: E8 0D FF F9 FF  at offset 445,486
  151. Change to : B8 01 00 00 00
  152.  
  153. Edit sboat.exe Force Feedback D3D off the net
  154. =============================================
  155. Search for: E8 5D 87 02 00  at offset 120,238
  156. Change to : B8 01 00 00 00
  157.  
  158. Search for: E8 9B 8B 00 00  at offset 250,224
  159. Change to : B8 01 00 00 00
  160.  
  161. Edit sboat.exe (940K 3Dfx version off the CD)
  162. =============================================
  163. Search for: E8 29 43 03 00  at offset 342,622
  164. Change to : B8 01 00 00 00
  165.  
  166. Search for: E8 3D 5B 00 00  at offset 533,066
  167. Change to : B8 01 00 00 00
  168.  
  169. Edit sboat.exe Force Feedback 3Dfx off the net
  170. =============================================
  171. Search for: E8 4F 21 F9 FF  at offset 457,854
  172. Change to : B8 01 00 00 00
  173.  
  174. Search for: E8 15 53 F5 FF  at offset 707,256
  175. Change to : B8 01 00 00 00
  176.  
  177. Edit sboat.exe Voodoo2 update off the net
  178. =============================================
  179. Search for: E8 0D 95 FF FF  at offset 175,130
  180. Change to : B8 01 00 00 00
  181.  
  182. Search for: E8 79 35 F8 FF  at offset 658,350
  183. Change to : B8 01 00 00 00
  184.  
  185. 3.  Play the game without the CD in your CD Rom drive
  186.  
  187.     Enjoy playing the cracked version of SBA becuase it's been FiX'ed
  188.  
  189. Static Vengeance - FiX
  190.